home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 301-325 / disk_321 / ifs / ifsout.doc < prev    next >
Text File  |  1992-05-06  |  9KB  |  175 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                             AMIGA IFSOUT Version 1.5
  8.  
  9.                        An Iterated Function System Viewer
  10.  
  11.               Released to the public domain by the Software Glen Co.
  12.                                    
  13.  
  14. INTRODUCTION
  15. ------------
  16.  
  17. IFSOUT graphically displays iterated function systems and allows the 
  18. user to interactively create the affine functions that define such
  19. systems.  An IFS can represent complex pictures very compactly.  Simple
  20. IFSs can describe an infinite number of different and interesting fractal
  21. displays.  Some of these pictures are remenisent of plants, ferns,
  22. bushes, trees, snails, shells, sunsets and other natural objects, plus
  23. a number of other interesting patterns. Included with the program are a 
  24. number of displays that the author and others have discovered.  These are in
  25. a directory named coors.
  26.  
  27. What is an iterated function system (IFS)?  An IFS is a set of functions 
  28. that define transformations on a Cartesian space.  Each of these functions 
  29. is a rule of affine transformation.  An affine function has the form of:
  30.  
  31.                   W(x,y) = (Ax + By + E, Cx + Dy + F) 
  32.  
  33. where:
  34.  
  35.     A,B,C,D,E,F are real number transformation coefficients.
  36.  
  37. So an affine function maps each point in the Cartesian Space to another 
  38. point in the Cartesian Space.  To compute an IFS image each affine
  39. function is randomly applied to the last computed point.  This process
  40. is repeated over and over, resulting in a picture of the IFS as those 
  41. points are displayed.  
  42.  
  43.  
  44. THE PROGRAM - TUTORIAL
  45. --- -------   --------
  46.  
  47. Ifsout is simple to use.  To run ifsout, just double click on the 
  48. ifsout icon, or type ifsout in a CLI shell (stack should be > 30000).  
  49. Ifsout takes no arguements.  Ifsout creates its own screen and begins 
  50. to display a default function, a small flower.  Before starting, you 
  51. should know how to get back to the previous screen (usually the Workbench).  
  52. To do so, use the Project Menu and click on the "Back to WB" box There 
  53. are no Front/Back gadgets, but there is a hidden Close gadget in the 
  54. normal left-hand corner.  It almost goes without saying, to quit, click 
  55. on the "quit" box in the Project menu.  
  56.  
  57. Try some different functions.  Use the Project Menu and click on the 
  58. "Get IFS" menu.  This will bring up a file requester like window to allow
  59. selection of a number of "coors" (IFS coordinate files) files.  No, it 
  60. has no relationship to the beer!  Thanks goes to C. Heath for the
  61. file browser requester.  It expects to find a coors directory on the 
  62. current default device. (i.e. if you started ifsout from RAD: it would 
  63. expect to find a coors directory in RAD:)  If there is no directory 
  64. there you will get a "Wrong Diskett?" message.  If this happens, 
  65. just click on OK and type in the path of your "coors" directory in the 
  66. Get File Requester string gadget. Included with this distribution is a 
  67. coors directory with all the IFSs in separate files.  
  68.  
  69. The displaying of the transformation numbers (those are the coefficients 
  70. of the functions) can be toggled by clicking on the "Numbers" box 
  71. in the "Control" Menu.  The eight numbers displayed for each affine 
  72. function are:
  73.  
  74.             function number, A, B, C, D, E, F coefficients, percentage
  75.  
  76. The coefficients are the ones in the above defined affine function.  The 
  77. percentage is the probability that the function will be randomly chosen.
  78. The sum of all the probabilities should total 1.00 or some functions
  79. will not get exercised as they should.
  80.             
  81. Try to change the function using the transformation boxes.  Click on the 
  82. "Boxes" box in the "Control" Menu.  This will bring up a number 
  83. of boxes.  Each box represents a transformation function.  One can change 
  84. the function by grabbing a corner of any box.  Note:  If two boxes' 
  85. corners are in the same position as the "selected" function (highlighted 
  86. in white) will be moved.  One can change the "selected" function by 
  87. clicking the left-mouse button away from the boxes when the boxes are 
  88. showing.  
  89.  
  90. Notice that the corner with the small box control the E and F coefficients 
  91. of the function, the opposite corner controls a combination of the A and D
  92. cofficients, the near corner (the one with the small box) controls 
  93. a combination of A and C coefficients, and the other corner (the one 
  94. opposite of the small triangle) controls a combination of the B and D 
  95. cofficients.  The small box is used to determine the orientation of 
  96. the transformation.  The program can display a IFS with 25 or less 
  97. affine transformations.
  98.  
  99. Take a look at Sierpinski's Triangle by selecting the "Get IFS" menu 
  100. function and selecting sier.coors file.  This function takes three
  101. transforms.  As you can see the images look as if they are "developing".
  102. Some images look better if they "cook" longer and other look best when
  103. they have only "cooked" for a short time.
  104.  
  105. Sometimes the function might disappear from your view as you are 
  106. manipulating them.  This is because the coefficients can also change
  107. the location of display.  To get the image back into a viewing position
  108. select the "Zoom To Fit" box in the Functions menu.  This not only centers
  109. the image but sizes it to about 85% of screen size.  This function
  110. can also be used to make a very small/large image larger/smaller.  Also
  111. in the "Functions" menu there is another to contol the scale of the
  112. display.  It is called "Zoom Out X 2" and should be self-explainatory.
  113.  
  114. Try some of the miscellanous functions.  If you have received the "paid-for"
  115. version you can save the functions that you create.  To save your function
  116. click on the "Save IFS" box in the Projects menu.  Your function will
  117. be saved with the name you specify.  Another toggle allows you to create
  118. a white background.  You can also get a new function.  The coeffiecents 
  119. of the new function are set to A, D, = 1 and the rest = 0.  This does not 
  120. effect the outcome of the current IFS except to add a new color and to change
  121. the percentage of the functions fo the IFS display.  Notice that each 
  122. affine function has its own color.  You can change the color of the 
  123. functions displayed by clicking the left mouse button when the boxes are 
  124. NOT displayed.  The colors are selected at random. 
  125.  
  126. There is also a pause toggle.  IFSOUT program is rather compute intensive.  
  127. The pause toggle allows the program to go to sleep until it is toggled again.
  128. This allows the processor to do other things quicker (like capturing the 
  129. screen with any of the screensaving programs).  NOTE:  BE CAREFUL WITH THIS 
  130. SWITCH as it makes the program look dead and unresponsive to any requests 
  131. except some menu selections (like the toggle itself and the QUIT funciton).
  132.  
  133. Another way to change the coeficients is by the use of the "Adjust
  134. Functions" requester which can be found in the Functions menu.  The Adjust
  135. Functions requester consists of four areas of control.  
  136.  
  137. The first method of control is the current function's coeficients.  These 
  138. are changeable.  You can request additional functions by typing in a 
  139. function number (WN) lager than the current number of functions.  If you 
  140. type in a function less than the current number of functions, it will give 
  141. you that function.
  142.  
  143. The second area of control is the horizonal slider gadgets next to the
  144. function number, coeficients and percent text input areas.  They also 
  145. control the same functions as the text input areas.  To change a function
  146. number just click on either side of the slider.  This slider does not
  147. allow you to add additional functions but is very useful in tracking down
  148. a function (by number) quickly.
  149.  
  150. The third area of control is the Zoom Slider.  It allows you to Zoom in
  151. (down) or out (up) a particular IFS.
  152.  
  153. The fourth area of control is the Positioner Gadget.  This allows you to
  154. position the current IFS on the screen.  Sometimes when you are Zooming
  155. into the function it changes the center.  This allows you to center it
  156. to your preverance.
  157.  
  158. A tip:  If you have the version that allows saving IFSs you can create
  159. a directory named coors in your RAD or RAM disk for rapid saving of IFS
  160. functions.
  161.  
  162. THE CHALLENGE
  163. --- ---------
  164.  
  165. Get the file glen.coors.  Notice that I have defined my name as an IFS.
  166. Not a real easy task, but as you can see it can be done.  Can you create
  167. an IFS for your name?
  168.  
  169. I would also like to hear from you if you find any new and interesting
  170. IFSs.  My email address is fullmer@alfalfa.sps.mot.com.
  171.     
  172. I hope you have as much fun with this as I have.  There would probably 
  173. be many more program features if searching for new IFSs wasn't so 
  174. distracting!  Enjoy.
  175.